home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 26.7 KB | 677 lines | [TEXT/MPS ] |
- /*
- File: OCE.idl
-
- Contains: Apple Open Collaboration Environment (AOCE) Interfaces.
-
- Version: Technology: AOCE Toolbox 1.02
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __OCE_IDL__
- #define __OCE_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __TYPES_IDL__
- #include <Types.idl>
- #endif
- #ifndef __ALIASES_IDL__
- #include <Aliases.idl>
- #endif
- #ifndef __APPLEEVENTS_IDL__
- #include <AppleEvents.idl>
- #endif
-
- #ifdef __SOMIDL__
-
- #if FOR_SYSTEM7_ONLY
- /* All utility routines defined here are callable at interrupt level. */
- typedef unsigned short OCERecordTypeIndex;
-
- typedef unsigned short OCEAttributeTypeIndex;
-
- /*
- For anyone who absolutely needs a define of the body of the standard record or
- attribute type, use these below. CAUTION! All the types below are assumed to be
- in character set 'smRoman'. If you try to compare these to some RString or
- AttributeType variable, you must take the character set code into account. Future
- standard types may be defined using character sets other than 'smRoman'.
- */
- /*
- All these standard definitions begin with the Apple symbol (not shown here).
-
- NOTE: To access these, you must call OCEGetIndRecordType or OCEGetIndAttributeType
- with the proper index. These routines return pointers to the standard type.
- This was done so that code fragments (INITs, CDEVs, CSAMs, etc). which cannot
- use global data can also use these.
- */
- /* Indices for the standard definitions for certain record types (OCERecordTypeIndex): */
- /* Indices for the standard definitions for certain attribute types (OCEAttributeTypeIndex): */
- #endif
- #if FOR_SYSTEM7_ONLY
- /* Miscellaneous enums: */
- /*
- This enum is used to select the kind of RString in calls such as OCERelRString,
- OCEEqualRString, and OCEValidRString.
-
- eGenericSensitive and eGenericInsensitive are enumerators that can be used if you
- use RStrings for things other than what you see in this file. If you want them to
- be compared in a case- and diacritical-sensitive manner (c ≠ C ≠ ç), use
- eGenericSensitive. If you want them to be compared in a case- and diacritical-
- insensitive manner (c = C = ç), use eGenericInensitive.
- WARNING: do not use eGenericSensitive and eGenericInsensitive with catalog
- names, entity names, pathname parts, entity types, network specs, or attribute
- types! Don't assume that you know how they should be compared!!!
- */
- typedef unsigned short RStringKind;
-
- /* Values for the signature field in Discriminator */
- typedef unsigned long OCEDirectoryKind;
-
- /* Values returned by GetDSSpecInfo() */
- /* Values for AttributeTag */
- /*
- Bit flag corresponding to the canContainRecords bit. Use it like this:
- if (foo & kCanContainRecords)
- then this dNode can contain records!
- kForeignNode is used to indicate nodes in the name hierarchy that correspond to
- foreign catalogs (meaning ADAP sees no clusters or DNodes beneath it, but
- mail routers might be able to route to clusters beneath it.
- */
- /* DirNodeKind */
- typedef unsigned long DirNodeKind;
-
- /**** Toolbox Control ****/
- /*
- We will have a version number and attributes for toolboxes off the aa5e trap
- and the S&F server trap.
-
- This includes the OCE toolbox and S&F Server. [Note: the S&F server will
- change to ONLY service ServerGateway calls —it will then be necessary to run
- it co–resident with an OCE toolbox].
-
- The high order word will represent the S&F Server version number. The low
- order word will represent the OCE toolbox version number. These will be zero
- until the component is up and running. It is not possible to know these
- a–priori. Note: there will not be a seperate version numbers for each component
- in the OCE toolbox or S&F server.
-
- The above is consistent with the standard System 7.0 usage of Gestalt.
-
- The oce tb attribute gestaltOCETBPresent implies the existence of OCE on a
- machine.
-
- The OCE TB attribute gestaltOCETBAvailable implies the availablity of OCE calls.
-
- The attribute gestaltOCESFServerAvailable implies the availablity of OCE calls
- available through the S&F server. This are essentially the server gateway calls.
-
- Any (future) remaining OCE attributes may not be established correctly until
- the attribute gestaltOCETBAvailable is set.
-
- The gestalt selectors and values are listed below:
- */
- /*
- version includes:
- * dirtb
- * authtb
- * mailtb
- * ipmtb
- * personal catalog
- * ADSPSecure
- * e.g. all interfaces dependent on the aa5e trap.
- */
- /* Constants used for Transitions. */
- /* Some definitions for time-related parameters: */
- /* Interpreted as UTC seconds since 1/1/1904 */
- typedef unsigned long UTCTime;
-
- /* seconds EAST of Greenwich */
- typedef long UTCOffset;
-
- /* This is the same as the ScriptManager script. */
- typedef short CharacterSet;
-
- /**** RString ****/
- /*
- struct RString is a maximum-sized structure. Allocate one of these and it will
- hold any valid RString.
- */
- typedef SOMLargeStruct RString; /* Derived from a struct of 260 bytes in size */
-
- /* struct ProtoRString is a minimum-sized structure. Use this for a variable-length RString. */
- typedef SOMFourByteStruct ProtoRString; /* Derived from a struct of 4 bytes in size */
-
- typedef OpaquePtr RStringPtr; /* Substituted OpaquePtr for “RString*” */
-
- typedef OpaquePtr RStringHandle; /* Substituted OpaquePtr for “RStringPtr*” */
-
- typedef OpaquePtr ProtoRStringPtr; /* Substituted OpaquePtr for “ProtoRString*” */
-
- typedef SOMLargeStruct RString64; /* Derived from a struct of 68 bytes in size */
-
- typedef SOMLargeStruct RString32; /* Derived from a struct of 36 bytes in size */
-
- /*
- Standard definitions for the entity type field and attribute type
- have been moved to the end of the file.
- */
- /*
- Copies str1 to str2. str2Length is the size of str2, excluding header.
- A memFull error will be returned if that is not as large as str1->dataLength.
- */
- /*
- Make an RString from a C string. If the c string is bigger than rStrLength,
- only rStrLength bytes will be copied. (rStrLength does not include the header size)
- */
- /*
- Make an RString from a Pascal string. If the Pascal string is bigger than rStrLength,
- only rStrLength bytes will be copied. (rStrLength does not include the header size)
- */
- /*
- Make a Pascal string from an RString. It's up to you to check the char set of
- the RString, or if the length of the RString is greater than 255 (the Pascal string's
- length will simply be the lower byte of the RString's length). The StringPtr that is
- returned will point directly into the RString (no memory will be allocated).
- */
- /*
- Check the relative equality of two RStrings. Determines if str1 is greater than,
- equal to, or less than str2. Result types for OCERelRString are defined in <OSUtils.h>
- (same as for RelString).
- */
- /* Check for equality of two RStrings. Returns true if equal. */
- /* Check the validity of an RString. Returns true if the RString is valid */
- /**** CreationID ****/
- typedef SOMLargeStruct CreationID; /* Derived from a struct of 8 bytes in size */
-
- typedef CreationID AttributeCreationID;
-
- typedef OpaquePtr CreationIDPtr; /* Substituted OpaquePtr for “CreationID*” */
-
- /* Returns a pointer to a null CreationID . */
- /* Returns a pointer to a special CreationID used within the PathFinder. */
- /* Sets the CreationID to a null value. */
- /* Copies the value of cid1 to cid2. */
- /* Check the equality of two CreationIDs. */
- /**** NetworkSpec ****/
- /*
- For the record, a NetworkSpec is an RString with a smaller maximum size.
- I don't just typedef it to an RString, because I want the definition of the NetworkSpec
- struct to contain the max length. But it should be possible to typecast any
- NetworkSpec to an RString and use all the RString utilities on it.
- */
- typedef SOMLargeStruct NetworkSpec; /* Derived from a struct of 36 bytes in size */
-
- typedef OpaquePtr NetworkSpecPtr; /* Substituted OpaquePtr for “NetworkSpec*” */
-
- /**** PackedPathName ****/
- /*
- struct PackedPathName is a maximum-sized structure. Allocate one of
- these and it will hold any valid packed pathname.
- */
- typedef SOMLargeStruct PackedPathName; /* Derived from a struct of 1024 bytes in size */
-
- /*
- struct ProtoPackedPathName is a minimum-sized structure. Use this
- for a variable-length packed PathName.
- */
- typedef SOMTwoByteStruct ProtoPackedPathName; /* Derived from a struct of 2 bytes in size */
-
- typedef OpaquePtr PackedPathNamePtr; /* Substituted OpaquePtr for “PackedPathName*” */
-
- typedef OpaquePtr ProtoPackedPathNamePtr; /* Substituted OpaquePtr for “ProtoPackedPathName*” */
-
- /*
- Copy the contents of path1 to path2. path2Length is the size of path2, and must
- be large enough to hold a copy of path1. A memFull error will be returned if that
- is not the case.
- */
- /*
- Returns true if packed path pointer is nil, or is of zero length, or is of
- length 2 and nParts of zero.
- */
- /*
- OCEUnpackPathName breaks apart the path into its component RStrings, writing string
- pointers into the array 'parts', which the client asserts can hold as many as
- 'nParts' elements. The number of parts actually found is returned. Strings are
- placed in the array in order from lowest to highest. The first pathName element
- beneath the root appears last. NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO
- THE PACKED STRUCT - DON'T DELETE OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED
- WITH THE UNPACKED STRUCT AS WELL
- */
- /*
- OCEPackedPathNameSize computes the number of bytes of memory needed to hold a
- PackedPathName manufactured from the array of parts. This length
- includes the length of the length field of PackedPathName, so it
- is safe to do a NewPtr (OCEPackedPathNameSize(...)).
- */
- /* OCEDNodeNameCount returns the number of RStrings contained within the path. */
- /*
- OCEPackPathName packs the parts into the storage provided as 'path'. path must be
- large enough to hold the packed pathname. A memFull error will be returned if
- pathLength is too small. parts[0] should contain the deepest pathName element,
- and parts[nParts - 1] should contain the name of the first pathName element beneath
- the root.
- */
- /*
- Check the equality of two packed paths.
- */
- /*
- OCEValidPackedPathName checks that the packed PathName is internally consistent.
- Returns true if it's ok.
- */
- /**** DirDiscriminator ****/
- typedef SOMLargeStruct DirDiscriminator; /* Derived from a struct of 8 bytes in size */
-
- /* Copies the value of disc1 to disc2. */
- /* Check the equality of two DirDiscriminators. */
- /*
- This structure is called RLI because it really contains all the info you
- need to locate a record within the entire name space. It contains four fields.
- The first two are the name of the catalog and a catalog discriminator. These
- two fields are used to indicate to which catalog a given record belongs. The
- discriminator is used to distinguish between two different catalogs that have
- the same name.
-
- The other two fields in the RLI structure are used to indicate a particular
- catalog node within the catalog specified by the directoryName and
- discriminator fields. These fields are exactly analagous to the dirID and
- pathname used in HFS. It is possible to specify a dNode just by dNodeNumber
- (pathname is nil), or just by pathname (dNodeNumber is set to kNULLDNodeNumber),
- or by a combination of the two. The latter is called a 'partial pathname', and
- while it is valid in the Catalog Manager API, it is not supported by ADAP
- catalogs in Release 1.
-
- Note that the path parameter does not include the catalog name, but holds
- the names of all the nodes on the path to the desired catalog node, starting
- with the catalog node and working its way up the tree.
- */
- /**** RLI ****/
- typedef SOMLargeStruct DirectoryName; /* Derived from a struct of 36 bytes in size */
-
- typedef OpaquePtr DirectoryNamePtr; /* Substituted OpaquePtr for “DirectoryName*” */
-
- /* Catalog node number */
- typedef unsigned long DNodeNum;
-
- typedef SOMLargeStruct RLI; /* Derived from a struct of 20 bytes in size */
-
- typedef OpaquePtr RLIPtr; /* Substituted OpaquePtr for “RLI*” */
-
- /*
- Create a new RLI from the catalog name, discriminator, DNode number, and
- PackedPathName. You must allocate the storage for the RLI and pass in a pointer
- to it.
- */
- /*
- Duplicate the contents of rli1 to rli2. No errors are returned. This
- simply copies the pointers to the catalog name and path, wiping out any pointer
- that you might have had in there.
- */
- /*
- Copy the contents of rli1 to rli2. rli2 must already contain
- pointers to structures large enough to hold copies of the corresponding
- fields from rli1. A memFull error will be returned if that is not the case.
- So if you allocate a brand new empty destination, you must at least set up
- its length fields.
- */
- /*
- Check the equality of two RLIs. This will take into account differences
- in the case and diacriticals of the directoryName and the PathName.
- NOTE THAT THIS WILL FAIL IF rli1 CONTAINS A DNODENUMBER AND A NIL PATHNAME,
- AND rli2 CONTAINS kNULLDNodeNumber AND A NON-NIL PATHNAME. IN OTHER WORDS,
- THE TWO rlis MUST BE OF THE SAME FORM TO CHECK FOR EQUALITY.
- The one exception is that if the pathname is nil, a dNodeNumber of zero and
- kRootDNodeNumber will be treated as equal.
- */
- /*
- Check the validity of an RLI. This checks that the catalog name length
- is within bounds, and the packed pathname (if specified) is valid.
- */
- /**** PackedRLI ****/
- /*
- struct PackedRLI is a maximum-sized structure. Allocate one of
- these and it will hold any valid packed pathname.
- */
- typedef SOMLargeStruct PackedRLI; /* Derived from a struct of 1298 bytes in size */
-
- /*
- struct ProtoPackedRLI is a minimum-sized structure. Use this
- for a variable-length packed RLI.
- */
- typedef SOMTwoByteStruct ProtoPackedRLI; /* Derived from a struct of 2 bytes in size */
-
- typedef OpaquePtr PackedRLIPtr; /* Substituted OpaquePtr for “PackedRLI*” */
-
- typedef OpaquePtr ProtoPackedRLIPtr; /* Substituted OpaquePtr for “ProtoPackedRLI*” */
-
- /*
- Copy the contents of prli1 to prli2. prli2Length is the size of prli2, and must
- be large enough to hold a copy of prli1. A memFull error will be returned if that
- is not the case.
- */
- /*
- OCEUnpackRLI breaks apart the prli into its components, writing pointers into
- the rli structure. NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO THE
- PACKED STRUCT - DON'T DELETE OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED
- WITH THE UNPACKED STRUCT AS WELL
- */
- /*
- OCEPackedRLISize computes the number of bytes of memory needed to hold a
- PackedRLI manufactured from an RLI. This length
- includes the length of the length field of PackedRLI, so it
- is safe to do a NewPtr (OCEPackedRLISize(...)).
- */
- /*
- OCEPackRLI packs the RLI into the storage provided as 'prli'. prli must be
- large enough to hold the packed RLI. A memFull error will be returned if
- prliLength is too small.
- */
- /*
- OCEPackedRLIPartsSize computes the number of bytes of memory needed to hold a
- PackedRLI manufactured from the parts of an RLI. This length
- includes the length of the length field of PackedRLI, so it
- is safe to do a NewPtr (OCEPackedRLIPartsSize(...)).
- */
- /*
- OCEPackRLIParts packs the parts of an RLI into the storage provided as 'prli'.
- prli must be large enough to hold the packed RLI. A memFull error will be returned
- if prliLength is too small.
- */
- /*
- Check the equality of two packed prlis.
- */
- /*
- Check the validity of a packed RLI. This checks that the catalog name length
- is within bounds, and the packed pathname (if specified) is valid.
- */
- /*
- If this packed RLI describes a Personal Catalog, this call will return a pointer
- to an alias record that can be used to find the actual file. Otherwise, it returns nil.
- */
- /*
- This call returns a pointer to a packed RLI that represents the "Catalogs" icon, or
- the root of all catalogs. It is used in the CollabPack.
- */
- /**** LocalRecordID ****/
- typedef SOMLargeStruct LocalRecordID; /* Derived from a struct of 16 bytes in size */
-
- typedef OpaquePtr LocalRecordIDPtr; /* Substituted OpaquePtr for “LocalRecordID*” */
-
- /* Create a LocalRecordID from a name, type, and CreationID */
- /*
- Copy LocalRecordID lRID1 to LocalRecordID lRID2. lRID2 must already contain
- pointers to RString structures large enough to hold copies of the corresponding
- fields from lRID1. A memFull error will be returned if that is not the case.
- So if you allocate a brand new empty destination, you must at least set up
- its length field.
- */
- /*
- Check the equality of two local RIDs.
- */
- /**** ShortRecordID ****/
- typedef SOMLargeStruct ShortRecordID; /* Derived from a struct of 12 bytes in size */
-
- typedef OpaquePtr ShortRecordIDPtr; /* Substituted OpaquePtr for “ShortRecordID*” */
-
- /* Create a ShortRecordID from an RLI struct and a CreationID */
- /*
- Copy ShortRecordID sRID1 to ShortRecordID sRID2. sRID2 must already contain
- pointers to structures large enough to hold copies of the corresponding
- fields from sRID1. A memFull error will be returned if that is not the case.
- So if you allocate a brand new empty destination, you must at least set up
- its length fields.
- */
- /*
- Check the equality of two short RIDs.
- */
- /**** RecordID ****/
- typedef SOMLargeStruct RecordID; /* Derived from a struct of 20 bytes in size */
-
- typedef OpaquePtr RecordIDPtr; /* Substituted OpaquePtr for “RecordID*” */
-
- /*
- Create a RecordID from a packed RLI struct and a LocalRecordID.
- This doesn't allocate any new space; the RecordID points to the same
- packed RLI struct and the same name and type RStrings.
- */
- /*
- Copy RecordID RID1 to RecordID RID2. RID2 must already contain
- pointers to structures large enough to hold copies of the corresponding
- fields from lRID1. A memFull error will be returned if that is not the case.
- So if you allocate a brand new empty destination, you must at least set up
- its length fields.
- */
- /* Check the equality of two RIDs. */
- /**** PackedRecordID ****/
- /*
- struct PackedRecordID is a maximum-sized structure. Allocate one of
- these and it will hold any valid packed RecordID.
- */
- typedef SOMLargeStruct PackedRecordID; /* Derived from a struct of 1826 bytes in size */
-
- /*
- struct ProtoPackedRecordID is a minimum-sized structure. Use this
- for a variable-length packed RecordID.
- */
- typedef SOMTwoByteStruct ProtoPackedRecordID; /* Derived from a struct of 2 bytes in size */
-
- typedef OpaquePtr PackedRecordIDPtr; /* Substituted OpaquePtr for “PackedRecordID*” */
-
- typedef OpaquePtr ProtoPackedRecordIDPtr; /* Substituted OpaquePtr for “ProtoPackedRecordID*” */
-
- /*
- Copy PackedRecordID pRID1 to PackedRecordID pRID2. pRID2 must already contain
- pointers to structures large enough to hold copies of the corresponding
- fields from pRID1. A memFull error will be returned if that is not the case.
- pRID2Length is the number of bytes that can be put into pRID2, not counting the
- packed RecordID header.
- */
- /*
- Create a RecordID from a PackedRecordID.
- NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO THE PACKED STRUCT - DON'T DELETE
- OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED WITH THE UNPACKED STRUCT AS WELL
- */
- /*
- Create a PackedRecordID from a RecordID. pRID must be large enough to contain
- the packed RecordID. A memFull error will be returned if that is not the case.
- packedRecordIDLength is the number of bytes that can be put into pRID, not
- counting the header.
- */
- /*
- Compute the number of bytes of memory needed to hold a RecordID when packed. This
- length includes the length of the length field of PackedRecordID, so it
- is safe to do a NewPtr (OCEPackedRecordIDSize(...)).
- */
- /*
- Check the equality of two packed RIDs.
- */
- /* OCEValidPackedRecordID checks the validity of a packed record ID. */
- /**** DSSpec ****/
- typedef SOMLargeStruct DSSpec; /* Derived from a struct of 14 bytes in size */
-
- typedef OpaquePtr DSSpecPtr; /* Substituted OpaquePtr for “DSSpec*” */
-
- /*
- struct PackedDSSpec is NOT a maximum-sized structure. Allocate one of
- these and it will hold any valid packed RecordID, but not necessarily any additional
- data.
- */
- typedef SOMLargeStruct PackedDSSpec; /* Derived from a struct of 1834 bytes in size */
-
- typedef OpaquePtr PackedDSSpecPtr; /* Substituted OpaquePtr for “PackedDSSpec*” */
-
- typedef OpaquePtr PackedDSSpecHandle; /* Substituted OpaquePtr for “PackedDSSpecPtr*” */
-
- /*
- struct ProtoPackedDSSpec is a minimum-sized structure. Use this
- for a variable-length packed DSSpec.
- */
- typedef SOMTwoByteStruct ProtoPackedDSSpec; /* Derived from a struct of 2 bytes in size */
-
- typedef OpaquePtr ProtoPackedDSSpecPtr; /* Substituted OpaquePtr for “ProtoPackedDSSpec*” */
-
- /*
- Copy PackedDSSpec pdss1 to PackedDSSpec pdss2. pdss2 must already contain
- pointers to structures large enough to hold copies of the corresponding
- fields from pdss1. A memFull error will be returned if that is not the case.
- pdss2Length is the number of bytes that can be put into pdss2, not counting the
- packed DSSpec header.
- */
- /*
- Create a DSSpec from a PackedDSSpec.
- NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO THE PACKED STRUCT - DON'T DELETE
- OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED WITH THE UNPACKED STRUCT AS WELL.
- A pointer to the extension is returned in dss->extensionValue, and the length of that
- extension is returned in dss->extensionSize. If there is no extension, dss->extensionValue will
- be set to nil. This routine will unpack the RecordID (if any) into rid, unpack the rest
- into dss, and set dss->entitySpecifier to rid.
- */
- /*
- Create a PackedDSSpec from a DSSpec. pdss must be large enough to
- contain the packed RecordID and any extension. A memFull error will be returned if that
- is not the case. pdssLength is the number of bytes that can be put into pdss,
- not counting the header.
- */
- /*
- Compute the number of bytes of memory needed to hold a DSSpec when packed. This
- length includes the length of the length field of PackedDSSpec, so it
- is safe to do a NewPtr (OCEPackedDSSpecSize(...)).
- */
- /*
- Check the equality of two DSSpecs. This compares all fields, even the
- extension (unless extensionSize == 0). The extensions are compared in a case-insensitive and
- diacrit-insensitive manner.
- */
- /*
- Check the equality of two PackedDSSpecs. This compares all fields, even the
- extension (unless extensionSize == 0). The extensions are compared in a case-insensitive and
- diacrit-insensitive manner.
- */
- /*
- Check the validity of a PackedDSSpec. If extensionType is
- 'entn', pdss must contain a valid entitySpecifier. For all other extensionTypes, a nil
- entitySpecifier is valid, but if non-nil, it will be checked for validity. No check
- is made on the extension.
- */
- /*
- Return info about a DSSpec. This routine does not check validity. If the
- DSSpec has no extension, we determine whether it represents the root of all
- catalogs, a single catalog, a DNode, or a Record. Else it is invalid.
- If the DSSpec has an extension, we simply return the extension type.
- */
- /* OCEGetExtensionType returns the extensionType imbedded in the PackedDSSpec. */
- /*
- OCEStreamPackedDSSpec streams (flattens) a catalog object a little at a time by
- calling the DSSpecStreamer routine that you provide.
- */
- typedef OpaquePtr DSSpecStreamerProcPtr;
- typedef OpaquePtr DSSpecStreamerUPP;
- typedef DSSpecStreamerUPP DSSpecStreamer;
-
- /**** AttributeType ****/
- /*
- For the record, an AttributeType is an RString with a smaller maximum size.
- I don't just typedef it to an RString, because I want the definition of the AttributeType
- struct to contain the max length, because I need to include it in the Attribute struct
- below. But it should be possible to typecast any AttributeType to an RString and use
- all the RString utilities on it.
- */
- typedef SOMLargeStruct AttributeType; /* Derived from a struct of 36 bytes in size */
-
- typedef OpaquePtr AttributeTypePtr; /* Substituted OpaquePtr for “AttributeType*” */
-
- /* Miscellaneous defines: (these cannot be made into enums) */
- /**** AttributeValue ****/
- /* same class as is used in AppleEvents */
- typedef DescType AttributeTag;
-
- typedef SOMLargeStruct AttributeValue; /* Derived from a struct of 12 bytes in size */
-
- typedef OpaquePtr AttributeValuePtr; /* Substituted OpaquePtr for “AttributeValue*” */
-
- /**** Attribute ****/
- typedef SOMLargeStruct Attribute; /* Derived from a struct of 56 bytes in size */
-
- typedef OpaquePtr AttributePtr; /* Substituted OpaquePtr for “Attribute*” */
-
- /*
- ***************************************************************************************
- PLEASE NOTE! ROUTINES HAVE MOVED TO THIS HEADER!
-
- OCESizePackedRecipient, OCEPackRecipient, OCEUnpackRecipient, OCEStreamRecipient,
- OCEGetRecipientType, and OCESetRecipientType have moved to the OCE header file.
- The OCEMessaging header includes the OCE header, so no changes to your code are
- required.
-
- ***************************************************************************************
- */
- typedef DSSpec OCERecipient;
-
- /*
- Compute the space that a OCERecipient would take if it were in packed
- form. [Note: does NOT even pad extensionSize, so you may get an odd #back out]
- Safe to pass dereferenced handle(s).
- */
- /*
- Take an OCERecipient (scatter) and (gather) stream into the specified
- buffer. It is assumed that there is sufficient space in the buffer (that is
- OCESizePackedRecipient). Safe to pass dereferenced handle(s).
- */
- /*
- Take a packed OCERecipient and cast a the OCERecipient frame over it. Returns
- amBadDestId if it doesn't look like an OCERecipient. Safe to pass dereferenced
- handle(s).
- */
- /*
- Take an OCERecipient (scatter) and (gather) stream using the specified
- function. Safe to pass dereferenced handle(s). If streamer function returns
- OCEError OCEStreamRecipient stops execution and passes the error back to the caller
- */
- typedef OpaquePtr OCERecipientStreamerProcPtr;
- typedef OpaquePtr OCERecipientStreamerUPP;
- typedef OCERecipientStreamerUPP OCERecipientStreamer;
-
- /* Get the OCERecipient's extensionType. Safe to pass dereferenced handle(s).*/
- /*
- Set the OCERecipient's extensionType in the specified cid. (Note: we do NOT
- check for a nil pointer). If the extensionType is 'entn', the cid is assumed
- to be "valid" and is not touched. Note: to properly handle non 'entn''s this
- routine must and will zero the high long (source) of the cid! Safe to pass
- dereferenced handle(s).
- */
- /*
- ***************************************************************************************
- PLEASE NOTE! ROUTINES HAVE MOVED TO THIS HEADER!
-
- OCEGetAccessControlDSSpec and its corresponding data type and constants have
- moved to the OCE header from OCEAuthDir. The OCEAuthDir header includes the OCE
- header, so no changes to your code are required.
-
- ***************************************************************************************
- */
- /* access categories bit numbers */
- /* Values of CategoryMask */
- typedef unsigned long CategoryMask;
-
- /*
- pass kThisRecordOwnerMask, kFriendsMask, kAuthenticatedInDNodeMask, kAuthenticatedInDirectoryMask,
- kGuestMask, or kMeMask to this routine, and it will return a pointer to a
- DSSpec that can be used in the Get or Set Access Controls calls.
- */
- #endif
-
- #endif /* __SOMIDL__ */
-
- #endif /* __OCE_IDL__ */
-
-